Concurrent Object-Oriented Programming: The MP-Eiffel Approach
نویسنده
چکیده
concurrent programming Since we are interested in the essential properties of concurrency, we don’t want to bind our concurrent processing entities to specific “lower level” realizations such as threads, processes, object request brokers, MPI, PVM, or any other. Instead, we will use an abstract notion of “processor” adapted from Meyer [Mey97, page 964]: A processor is an autonomous thread of control capable of supporting the sequential execution of instructions. 98 JOURNAL OF OBJECT TECHNOLOGY VOL 3, NO. 4 2 CONCURRENT PROGRAMMING Nothing is assumed on how this virtual processor will be implemented at runtime. We won’t even exclude the possibility that a processor may start by being a thread in one machine and end as a process in another through a remote procedure call mechanism. In general, concurrency does not require simultaneous (parallel) processor execution. A concurrent program can be thought as the concurrent execution of sequential “programs”, one for each processor (of course, they may depend highly on each other). From a concurrent programming system we expect the ability to – safely – specify and control two things: • concurrent execution of processors; • inter-processor synchronization and communication. Concurrent execution of processors Concurrent systems need mechanisms to start, support, and terminate the execution of processors, either as part of the programming language constructs or provided in a library. In particular they need to assign processors to specific processing devices (threads, processes, computers in a distributed system, or any other). This assignment will be called heterogeneous if the concurrent system allows the assignment of different processing devices for processors, otherwise it will be classified as homogeneous processor mapping. Heterogeneous processor mapping is a desirable property since it enforces the decoupling between a concurrent program and specific processing devices. However, specific types of concurrent programming, such as real-time and embedded systems may pose strong restrictions to valid (feasible) processor mappings. Inter-processor synchronization and communication To ensure a correct inter-processor interaction it is necessary to enforce proper timing constraints between them. Such synchronization requirements may arise from the necessity to guarantee safety properties [Lam83], the verification of some condition, the need to impose a specific processor scheduling strategy [RF77], or several of these possibilities at the same time.
منابع مشابه
Design and Implementation Issues for Object-Oriented Concurrency
This paper describes design and implementation issues for introducing concurrency to object-oriented programming. Designing a concurrency class library along with an object-oriented concurrent program design method is presented as the prefered way to extend an existing object-oriented language. A set of classes designed to facilitate concurrent programming using the sequential object-oriented l...
متن کاملConcurrent Object-Oriented Programming: The MP-Eiffel Approach
concurrent programming Since we are interested in the essential properties of concurrency, we don’t want to bind our concurrent processing entities to specific “lower level” realizations such as threads, processes, object request brokers, MPI, PVM, or any other. Instead, we will use an abstract notion of “processor” adapted from Meyer [Mey97, page 964]: 2 JOURNAL OF OBJECT TECHNOLOGY Submitted ...
متن کاملExceptions in Concurrent Eiffel
We describe the problem of asynchronous exceptions in Eiffel’s Simple Concurrent Object-Oriented Programming (SCOOP). We discuss a range of possible solutions to further enable dependable computing in concurrent Eiffel. We propose a mechanism to handle aynchronous exceptions via a limited developer choice, including the notion of a failed or dead object, and necessarily introduce a small number...
متن کاملUsing Metamodeling to Analyze the Fit of Object-Oriented Methods to Languages
The objective of this paper is to describe a metamodelling approach towards evaluating the jlt of Object-Oriented Analysis and Design (OOAD) methodologies to Object-Oriented Programming (OOP) languages. Metamodelling has been applied successfully to evaluate and integrate OOAD methodologies. In this research, the use of metamodelling is extended to describe OOP languages. This paper describes a...
متن کاملPractical framework for contract-based concurrent object-oriented programming
CONCURRENCY, in its many variants from multithreading to multiprocessing, distributed computing, Internet applications, and Web services, has become a required component of ever more types of systems, including some that are traditionally thought of as sequential. The software industry badly needs a concurrent programming technique enjoying the same simplicity and inspiring the same confidence ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004